import JSEncrypt from 'encryptlong'
// 或使用支持长文本的版本：import { JSEncrypt } from 'encryptlong'

// npm install jsencrypt --save
// # 或支持长文本的扩展版
// npm install encryptlong --save

// 创建加密实例
const encryptor = new JSEncrypt()

/**
 * 设置公钥
 * @param {string} publicKey - PEM格式的公钥
 */
export function setPublicKey(publicKey: string) {
  encryptor.setPublicKey(publicKey)
}

/**
 * RSA加密
 * @param {string} data - 待加密数据
 * @returns {string} Base64格式的加密结果
 */
export function encrypt(data: string): string {
  return encryptor.encrypt(data)
}

/**
 * 从后端获取公钥（可选）
 */
export async function fetchPublicKey() {
  try {
    const res = await axios.get('/api/get-public-key')
    return res.data.publicKey
  } catch (error) {
    console.error('获取公钥失败', error)
    throw error
  }
}